package com.qijian.maindata.domain.query;

import com.baomidou.mybatisplus.annotation.TableName;
import com.qijian.common.utils.mybatis.WhereType;
import com.qijian.common.utils.mybatis.WhereTypeEnum;
import lombok.Data;
import lombok.ToString;

import java.util.List;
import java.util.Set;


/**
 * BOM明细对象 查询条件类
 *
 * @author qijian
 * @date 2021-09-01
 */

@Data
@ToString
@TableName("main_bom_detail")
public class BomDetailQuery {

    @WhereType(filed = "detail_id")
    private Long detailId;
    @WhereType(filed = "detail_id", type = WhereTypeEnum.NOTIN)
    private Set<Long> idsNot;
    @WhereType(filed = "level", sort = true, sortType = WhereTypeEnum.ASC)
    private Integer level;
    @WhereType(filed = "sort", sort = true, sortType = WhereTypeEnum.ASC)
    private Integer sort;
    @WhereType(filed = "detail_code")
    private String detailCode;

    @WhereType(filed = "detail_code" , type = WhereTypeEnum.LIKE_RIGHT)
    private String detailCodeLike;
    @WhereType(filed = "line_code")
    private String lineCode;
    @WhereType(filed = "line_id")
    private Long lineId;
    @WhereType(filed = "sub_count")
    private Integer subCount;
    @WhereType(filed = "pid")
    private Long pid;
    @WhereType(filed = "bom_id")
    private Long bomId;
    @WhereType(filed = "bom_id", type = WhereTypeEnum.IN)
    private Set<Long> bomIds;
    @WhereType(filed = "item_code", type = WhereTypeEnum.LIKE)
    private String itemCode;
    @WhereType(filed = "item_code", type = WhereTypeEnum.IN)
    private List<String> itemCodeList;
    @WhereType(filed = "quantity")
    private Long quantity;
    @WhereType(filed = "producer_id")
    private Long producerId;
    @WhereType(filed = "producer_name")
    private String producerName;
    @WhereType(filed = "approval_by")
    private String approvalBy;
    @WhereType(filed = "approval_status")
    private String approvalStatus;
    @WhereType(filed = "detail_id", type = WhereTypeEnum.IN)
    private Set<Long> ids;
    @WhereType(filed = "create_time", type = WhereTypeEnum.BETWEEN)
    private List<String> createTimeList;
    @WhereType(filed = "item_name", tableName = "main_item", type = WhereTypeEnum.LIKE)
    private String itemName;
    @WhereType(filed = "create_by", type = WhereTypeEnum.LIKE)
    private String createBy;
    @WhereType(filed = "line_id", type = WhereTypeEnum.NOTNULL)
    private Boolean lineIdNotNull;
    @WhereType(filed = "process_type", tableName = "main_line_process")
    private String processType;

    @WhereType(filed = "user_id",tableName = "sys_user")
    private String approvalId;
}
